/*
 * Created on 24/06/2005
 *
 */
package com.master.bd.calculo_frete;

import java.sql.*;

import com.master.ed.*;
import com.master.root.*;
import com.master.util.*;
import com.master.util.bd.*;
import com.master.util.ed.*;



public class Localiza_Prazo extends Calcula_Frete {

    protected Regiao_EntregaBean regiao_EntregaBean = new Regiao_EntregaBean ();

    protected String sql = null;


    public Localiza_Prazo(ExecutaSQL executasql) {
        super(executasql);
        // //// ("Localiza_Prazo");
    }

    protected long buscaPrazo(Calcula_FreteED ed)
    throws Excecoes{
    	
    	long NR_Prazo_Entrega=0;
    	String calcula_entrega="";

        // //// ("Localiza_Prazo ->>" +NR_Prazo_Entrega);

        try {
        	///cidade x ...
            //// ("Localiza_Prazo ->> cidade" );
            if ("S".equals(parametro_FixoED.getDM_Calcula_Previsao_Entrega())){
            	calcula_entrega="REGIAO";
            }
            if ("REGIAO_ENTREGA".equals(parametro_FixoED.getDM_Calcula_Previsao_Entrega())){
            	calcula_entrega="REGIAO";
            }
            if ("ROTA_ENTREGA".equals(parametro_FixoED.getDM_Calcula_Previsao_Entrega())){
            	calcula_entrega="ROTA";
            }

            if ("ROTA".equals(calcula_entrega)) {
            	String sql= " SELECT Rotas_Entregas.NR_Prazo_Entrega "  + 
            				" FROM   Rotas_Entregas "  +
            				" WHERE  Rotas_Entregas.OID_Pessoa ='" + ed.getOID_Pessoa_Destinatario() + "'";

                ResultSet rsPrazo = this.executasql.executarConsulta (sql);

                if (rsPrazo.next ()) {
                	NR_Prazo_Entrega=rsPrazo.getLong("NR_Prazo_Entrega");
                }
            }
            
            
            if ("REGIAO".equals(calcula_entrega)) {
            	if (ed.getOID_Cidade_Origem()>0 && ed.getOID_Cidade_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Cidade_Origem(), ed.getOID_Cidade_Destino(), "C", "C");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Cidade_Origem()>0 && ed.getOID_Regiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Cidade_Origem(), ed.getOID_Regiao_Destino(), "C", "R");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Cidade_Origem()>0 && ed.getOID_Subregiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Cidade_Origem(), ed.getOID_Subregiao_Destino(), "C", "S");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Cidade_Origem()>0 && ed.getOID_Estado_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Cidade_Origem(), ed.getOID_Estado_Destino(), "C", "E");
            	}

            	///regiao x ...
                //// ("Localiza_Prazo ->>regiao origem" + ed.getOID_Regiao_Origem());
            	if (NR_Prazo_Entrega==0 && ed.getOID_Regiao_Origem()>0 && ed.getOID_Cidade_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Regiao_Origem(), ed.getOID_Cidade_Destino(), "R", "C");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Regiao_Origem()>0 && ed.getOID_Regiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Regiao_Origem(), ed.getOID_Regiao_Destino(), "R", "R");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Regiao_Origem()>0 && ed.getOID_Subregiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Regiao_Origem(), ed.getOID_Subregiao_Destino(), "R", "S");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Regiao_Origem()>0 && ed.getOID_Estado_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Regiao_Origem(), ed.getOID_Estado_Destino(), "R", "E");
            	}
            	
            	///polo x ...
                //// ("Localiza_Prazo ->>SubRregiao origem" + ed.getOID_Subregiao_Origem());
            	if (NR_Prazo_Entrega==0 && ed.getOID_Subregiao_Origem()>0 && ed.getOID_Cidade_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Subregiao_Origem(), ed.getOID_Cidade_Destino(), "S", "C");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Subregiao_Origem()>0 && ed.getOID_Regiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Subregiao_Origem(), ed.getOID_Regiao_Destino(), "S", "R");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Subregiao_Origem()>0 && ed.getOID_Subregiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Subregiao_Origem(), ed.getOID_Subregiao_Destino(), "S", "S");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Subregiao_Origem()>0 && ed.getOID_Estado_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Subregiao_Origem(), ed.getOID_Estado_Destino(), "S", "E");
            	}
            	
            	
            	if (NR_Prazo_Entrega==0 && ed.getOID_Estado_Origem()>0 && ed.getOID_Cidade_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Estado_Origem(), ed.getOID_Cidade_Destino(), "E", "C");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Estado_Origem()>0 && ed.getOID_Regiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Estado_Origem(), ed.getOID_Regiao_Destino(), "E", "R");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Estado_Origem()>0 && ed.getOID_Subregiao_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Estado_Origem(), ed.getOID_Subregiao_Destino(), "E", "S");
            	}
            	if (NR_Prazo_Entrega==0 && ed.getOID_Estado_Origem()>0 && ed.getOID_Estado_Destino()>0) {
            		NR_Prazo_Entrega=regiao_EntregaBean.getPrazoEntrega(ed.getOID_Modal(), ed.getOID_Estado_Origem(), ed.getOID_Estado_Destino(), "E", "E");
            	}
            }

            // //// ("NR_Prazo_Entrega ->>" +NR_Prazo_Entrega);
        	
        } catch (Exception e) {
            throw new Excecoes(e.getMessage(), e, getClass().getName(), "localiza_Prazo(Calcula_FreteED ed, ResultSet rsTabela)");
        }
        return NR_Prazo_Entrega;
    }




}
